#ifndef UART_H
#define UART_H

#include <QSerialPort>
#include <QSerialPortInfo>
#include <QTimer>
//#include "mainwindow.h"
//namespace Ui{
//class MainWindow;
//}

struct settings //  serial argv 串口参数
{
    QString name;       // 串口号

    qint32 baudRate;    //波特率
    QString stringBaudRate;

    QSerialPort::DataBits dataBits;//数据位
    QString stringDataBits;

    QSerialPort::Parity parity;    //校验位
    QString stringParity;

    QSerialPort::StopBits stopBits;//停止位
    QString stringStopBits;

    QSerialPort::FlowControl flowControl;   //控制流
    QString stringFlowControl;
};

class uart: public QObject
{
    Q_OBJECT
public:
    explicit uart(QObject *parent = nullptr);
    ~uart();

    void serial_init();     //  init serial 串口
    void serial_open();     //  open serial 打开串口
    void serial_close();    //  close serial 关闭串口
    QString serial_read();  //读串口
    void serial_write(const QString data);    //  write serial 写串口
    QSerialPort* getSerialPort(void);
   // QSerialPort m_serial;

    QString getRxString(void);
    void clrRxString(void);
private slots:
    void serial_read_slot();

private:
 //   Ui::MainWindow *ui;
    QString rx_buf;
    QSerialPort *m_serial;
 //   QSerialPort m_serial;
 //   w_transform m_t;
    QTimer m_timer;
};

#endif
